/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.tesoreria.beans;

import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;
import org.cip.esymons.general.be.PersonaJuridica;
import org.cip.esymons.general.util.ControladorAbstracto;
import org.cip.esymons.tesoreria.bc.ChequeraDelegate;
import org.cip.esymons.tesoreria.bc.CuentaBancariaDelegate;
import org.cip.esymons.tesoreria.be.Chequera;
import org.cip.esymons.tesoreria.be.CuentaBancaria;
import org.cip.esymons.tesoreria.be.EnumEstadoChequera;

/**
 *
 * @author Gilmar
 */
public class ChequeraController {

    private ChequeraDelegate delegado;
    private Chequera chequera;
    private PersonaJuridica banco;
    private CuentaBancariaDelegate cuentaBancariaDelegate;

    public ChequeraController() {
        delegado = new ChequeraDelegate();
        cuentaBancariaDelegate = new CuentaBancariaDelegate();
    }

    public List<Chequera> getListaChequeras(){
        return delegado.findAll();
    }

    public String nuevo(){
        chequera = new Chequera();
        chequera.setEstado(EnumEstadoChequera.VIGENTE);
        return "nuevo";
    }

    public String grabar(){
        delegado.create(chequera);
        ControladorAbstracto.info("Se insertó satisfactoriamente la Chequera.");
        return "buscar";
    }

    public String actualizar(){
        delegado.edit(chequera);
        ControladorAbstracto.info("Se actualizó satisfactoriamente la Chequera.");
        return "buscar";
    }

    public String eliminar(){
        delegado.remove(chequera);
        return null;
    }

    /**
     * @return the chequera
     */
    public Chequera getChequera() {
        return chequera;
    }

    /**
     * @param chequera the chequera to set
     */
    public void setChequera(Chequera chequera) {
        this.chequera = chequera;
    }

    /**
     * @return the banco
     */
    public PersonaJuridica getBanco() {
        return banco;
    }

    /**
     * @param banco the banco to set
     */
    public void setBanco(PersonaJuridica banco) {
        this.banco = banco;
    }

    public SelectItem[] getCuentasBancariasxBancoItems() {
        try {
            List<CuentaBancaria> lba = new ArrayList<CuentaBancaria>();
            lba = cuentaBancariaDelegate.buscarPorBanco(banco);
            SelectItem[] select = new SelectItem[lba.size()];
            int i = 0;
            for (CuentaBancaria ba : lba) {
                SelectItem item = new SelectItem(ba, ba.getCbaNumcuenta()+"-"+ba.getFkTmoCodigo().getTmoSimbolo());
                select[i++] = item;
            }

            return select;

        } catch (Exception ex) {
            SelectItem[] select = new SelectItem[1];
            SelectItem item = new SelectItem(null, "No existen Cuentas");
            select[0] = item;
            return select;
        }
    }


}
